package com.penghaisoft.microwms.base.web.auth.service;


import com.penghaisoft.microwms.common.base.model.BaseResource;
import com.penghaisoft.microwms.common.dto.BaseResourceDto;
import com.penghaisoft.microwms.common.dto.BaseUserResourceForm;
import com.penghaisoft.microwms.common.dto.Resp;
import com.penghaisoft.microwms.common.page.Pager;

import java.util.List;

/**
 * <p>
 * 业务接口类
 * </p>
 * 
 * @author
 * @createDate 
 **/
public interface IBaseResourceService {

	public Resp create(BaseResource baseResource);

	public Resp delete(BaseResource baseResource);

	public Pager<BaseResource> findListByCondition(int page, int rows, BaseResource condition);

	public BaseResource findById(String id);

	public Resp update(BaseResource baseResource);

	public List<BaseResource> findMenuByLoginName(String loginName);

	public List<String> findPermissionsByLoginName(String loginName);

	public List<BaseResource> findAllPermissions();

	public List<BaseResourceDto> findResourceTree();

	public BaseResource queryOneWithParent(String id);

	/**
	 * @param @param  userId
	 * @param @return
	 * @return List<BaseResource>
	 * @throws
	 * @Title: findHandPermissionsByLoginName
	 * @Description: 查找手持的权限
	 * @author zhangxu
	 * @2017年6月6日:2017年6月6日:上午9:12:43
	 * @version V0.1
	 */
	public List<BaseResource> findHandPermissionsByUser(String userId);

	/**
	 * 查询用户按钮权限
	 *
	 * @param loginName
	 * @return
	 */
	public List<BaseResource> findBtnByLoginName(String loginName);

	/**
	 * 查询用户在某个工厂下的菜单
	 *
	 * @param loginName
	 * @param factoryCode
	 * @return
	 */
	public List<BaseResource> findMenuByLoginNameAndFactory(String loginName, String factoryCode);

	/**
	 * 查询用户的角色
	 * @param page
	 * @param rows
	 * @param condition
	 * @return
	 */
	public Pager<BaseUserResourceForm> findUserResList(int page, int rows, BaseUserResourceForm condition);
}